const express = require('express')
const articleCtrl = require('../controller/article')
// 加载认证中间件
const auth = require('../middleware/auth')
// 加载校验请求体参数中间件
const articleValidator = require('../validator/article')

const router = express.Router()

// 获取文章列表
router.get('/', articleCtrl.listArticles)

// 推送文章列表（关注人文章）
router.get('/feed', articleCtrl.feedArticles)

// 获取文章
router.get('/:articleId', articleValidator.getArticle, articleCtrl.getArticle)

// 创建文章
router.post('/', auth, articleValidator.createArticle, articleCtrl.createArticle)

// 更新文章
router.put('/:articleId', auth, articleValidator.updateArticle, articleCtrl.updateArticle)

// 删除文章
router.delete('/:articleId', auth, articleValidator.deleteArticle, articleCtrl.deleteArticle)

// 给文章添加评论
router.post('/:articleId/comments', articleCtrl.addComments)

// 从文章获取评论
router.get('/:articleId/comments', articleCtrl.getComments)

// 删除评论
router.delete('/:articleId/comments', articleCtrl.deleteComment)

// 收藏文章(favorite)
router.post('/:articleId/favorite', articleCtrl.favoriteArticle)

// 取消文章收藏(unfavorite)
router.delete('/:articleId/favorite', articleCtrl.unfavoriteArticle)

module.exports = router